Specifying and Exploiting Advice-Execution Ordering using Dependency State Machines∗
نویسنده
چکیده
In this paper we present Dependency State Machines, an annotation language that extends AspectJ with finite-state machines that define the order in which pieces of advice must execute to have a visible effect. Dependency State Machines facilitate the automatic verification and optimization of aspects, but also program understanding. In this work we present the syntax and semantics of Dependency State Machines and one possible use case of Dependency State Machines: program understanding. We explain how a set of three static program analyses can exploit the information that Dependency State Machines carry to remove advice-dispatch code from program locations at which dispatching the advice would have no effect. Dependency State Machines hereby help to abstract from the concrete implementation of the aspect, making the approach compatible with a wide range of aspect-generating monitoring tools. Our extensive evaluation using the DaCapo benchmark suite shows that our approach can pinpoint to the user exactly the program locations at which the aspect’s execution matters in many cases. This is particularly useful when the aspect’s purpose is to identify erroneous execution sequences: in these cases, the program locations that our analysis pinpoints resemble possible points of program failure.
منابع مشابه
Task Pipeline Specification and Scheduling
Research pipelines, such as those often found in computer vision or computational biology, often consist of a large number of heterogenous programs. This leads to brittle code that is difficult to maintain, while requiring significant effort to parallelize across multiple machines. We present a lightweight framework for specifying the execution of such pipelines. The structure imposed by our fr...
متن کاملA (more) Formal Denition of Communicating Real-time State Machines 3
The language of communicating real-time state machines is de ned precisely in three parts. First, the syntax of a single machine and of a set of connected machines are described. Then, the static semantics is described as the set of execution paths obtained through a static analysis. Finally, the dynamic semantics is de ned by specifying a simulation algorithm that produces execution traces or ...
متن کاملDependency Pairs are a Simple Semantic Path Ordering
We explicate the relation between the older semantic path ordering of Kamin and Lévy and the newer dependency-pair method of Arts and Giesl. 1998 ACM Subject Classification F.3.1 Specifying and Verifying and Reasoning about Programs
متن کاملSpecifying and Modeling Multicast Communication in Cbcast Protocol
Reliability of the message passing in multicast communications depends on ordering of messages in conformance with properties of used communication protocol. Among others, CBCAST is the protocol used for ordering and synchronization of messages in multicast communication. This study aims to discuss verification of message passing in the multicast communication against properties of the CBCAST p...
متن کاملA novel dependency-to-string model for statistical machine translation
Dependency structure, as a first step towards semantics, is believed to be helpful to improve translation quality. However, previous works on dependency structure based models typically resort to insertion operations to complete translations, which make it difficult to specify ordering information in translation rules. In our model of this paper, we handle this problem by directly specifying th...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2010